 #ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
// 按钮
#include <QPushButton>
// 图片
#include <QIcon>
#include <QPixmap>
#include <QPalette>
// 媒体播放器
#include <QMediaPlayer>
// 文件系统
#include <QDir>
#include <QFile>
#include <QFileInfo>
// 对话框
#include <QMessageBox>
// 打印调试
#include <QDebug>
// 动画
#include <QPropertyAnimation>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

enum PlayMode
{
    Order_Mode,
    Random_Mode,
    Circle_Mode,
};

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
private:
    void initButton();
    void initBackground(QPixmap & pixmap);
    void initPlayer();
    void initMusicList();

private:
    Ui::MainWindow *ui;

private slots:
    void on_playButton_clicked();

    void on_modeButton_clicked();

    void on_nextButton_clicked();

    void on_previousButton_clicked();

    void on_listButton_clicked();

    void handleMusicListSlot();

private:
    QMediaPlayer *player;
    PlayMode mode;
    QString musicDir;
    bool showFlag;
    void loadAppointMusicDir(const QString & filepath);
    void startPlayMusic();

private:
    void musicListShowAnimation(QWidget *window);
    void musicListHideAnimation(QWidget *window);

};
#endif // MAINWINDOW_H
